MPI_COMPILE_FLAGS = $(shell mpicc --showme:compile) 
MPI_LINK_FLAGS = $(shell mpicc --showme:link) -fopenmp -lm 



all: comp_seq comp_par comp_par_teste comp_par_teste2
comp_seq: main_sequencial.c t3
	mpicc main_sequencial.c -o main_sequencial t3.o

comp_par: main_paralelo.c t3
	mpicc -o main_paralelo $(MPI_LINK_FLAGS) $(MPI_COMPILE_FLAGS) main_paralelo.c t3.o



t3:
	mpicc -c t3.c




comp_par_teste: main_paralelo_teste.c t3
	mpicc -o main_paralelo_teste $(MPI_LINK_FLAGS) $(MPI_COMPILE_FLAGS) main_paralelo_teste.c t3.o

comp_par_teste2: main_paralelo_teste2.c t3
	mpicc main_paralelo_teste2.c -o main_paralelo_teste2.c t3.o

run_par_teste: comp_par_teste
	mpirun -np 3 --host x-men,hulk,wolverine main_paralelo_teste matrizT2.txt

run_par_teste2: comp_par_teste2
	./main_paralelo_teste2 matrizT3.txt

run: main_paralelo3.c t3
	mpicc -o main_paralelo3 $(MPI_LINK_FLAGS) $(MPI_COMPILE_FLAGS) main_paralelo3.c t3.o
	mpirun -np 2  main_paralelo3 matrizT.txt

run2: main_paralelo3.c t3
	mpicc -o main_paralelo3 $(MPI_LINK_FLAGS) $(MPI_COMPILE_FLAGS) main_paralelo3.c t3.o
	time mpirun -np 3  main_paralelo3 matriz250.txt
	time mpirun -np 5  main_paralelo3 matriz250.txt
	time mpirun -np 7  main_paralelo3 matriz250.txt
	time mpirun -np 9  main_paralelo3 matriz250.txt
	time mpirun -np 11  main_paralelo3 matriz250.txt
	time mpirun -np 13  main_paralelo3 matriz250.txt

run3: main_paralelo3.c t3
	mpicc -o main_paralelo3 $(MPI_LINK_FLAGS) $(MPI_COMPILE_FLAGS) main_paralelo3.c t3.o
	time mpirun -np 7  main_paralelo3 matriz1500.txt
	
run4: main_paralelo3.c t3
	mpicc -o main_paralelo3 $(MPI_LINK_FLAGS) $(MPI_COMPILE_FLAGS) main_paralelo3.c t3.o
	time mpirun -np 7  main_paralelo3 matriz250.txt
	time mpirun -np 7  main_paralelo3 matriz500.txt
	time mpirun -np 7  main_paralelo3 matriz1000.txt
	time mpirun -np 7  main_paralelo3 matriz1500.txt
	time mpirun -np 7  main_paralelo3 matriz2000.txt
	time mpirun -np 7  main_paralelo3 matriz3000.txt
	time mpirun -np 7  main_paralelo3 matriz4000.txt
	time mpirun -np 7  main_paralelo3 matriz250.txt
	time mpirun -np 7  main_paralelo3 matriz500.txt
	time mpirun -np 7  main_paralelo3 matriz1000.txt
	time mpirun -np 7  main_paralelo3 matriz1500.txt
	time mpirun -np 7  main_paralelo3 matriz2000.txt
	time mpirun -np 7  main_paralelo3 matriz3000.txt
	time mpirun -np 7  main_paralelo3 matriz4000.txt
	time mpirun -np 7  main_paralelo3 matriz250.txt
	time mpirun -np 7  main_paralelo3 matriz500.txt
	time mpirun -np 7  main_paralelo3 matriz1000.txt
	time mpirun -np 7  main_paralelo3 matriz1500.txt
	time mpirun -np 7  main_paralelo3 matriz2000.txt
	time mpirun -np 7  main_paralelo3 matriz3000.txt
	time mpirun -np 7  main_paralelo3 matriz4000.txt
	
	


clean_all:
	rm main_sequencial main_paralelo main_paralelo_teste *.o

clean_seq:
	rm main_sequencial *.o

clean_par:
	rm main_paralelo *.o
